﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;

namespace IMedicare
{
    public interface IMedicare : IBankCard
    {
        //初始化
        int InitHisDLL(ArrayList PrenoList);

        //释放
        int FreeHisDLL(ArrayList PrenoList);

        //读卡
        //patientType 1 
        int ReadCard(int TranType, string PersonID, ref DataSet patientInfoData, ref ArrayList PrenoList);

        //挂号登记
        int Register(int TranType, string PersonID, DataSet registerInfoData, ref ArrayList PrenoList);

        //门诊结算
        int ClinicBalance(int TranType, DataSet detailAccountData, DataSet ecipeMedicineData,  ref ArrayList PrenoList);


        //住院登记
        int InHosRegister(int TranType, int InHosState, string InHosID, int CurrentInHosMark, DataSet inHosRecordData, DataSet leaveHosRecordData, ref ArrayList PrenoList);


        //住院划价收费
        int InHosCharge(int TranType, int InHosState, string PersonID, string InHosID, int CurrentInHosMark, DataSet inHosRecordData, DataSet inHosChargeDetailData, DataSet inHosLeechdomRecordData, ref  ArrayList PrenoList);

        //住院预交款
        int InHosAdvance(int TranType, int InHosState, string PersonID, int CurrentInHosMark, DataSet inHosRecordData, DataSet advanceRecordData, ref  ArrayList PrenoList);


        //住院转科
        int InHosChangeOffice(int TranType, int InHosState, string PersonID, int CurrentInHosMark, DataSet inHosRecordData, DataSet changeBedData, ref ArrayList PrenoList);

        //住院结算 TranType  0: 只预结算不处理费用    1：his调用传1   
        int InHosBalance(int TranType, int InHosState, string PersonID, string InHosID, int CurrentInHosMark, DataSet inHosRecordData, ref ArrayList PrenoList);

        //住院换票
        int ChangeInvoice(int TranType, int InHosState, string PersonID, int CurrentInHosMark, DataSet inHosRecordData, ref ArrayList PrenoList);

        //门诊his退费
        int HisRollBack(int ClinicType, int TranType, string PersonID, int CurrentInHosMark, ref ArrayList PrenoList);

        //his普通医保互相转换
        int HosTransformFeeType(int TranType, int InHosState, string PersonID, int CurrentInHosMark, ref ArrayList PrenoList);

        //是否初始化标识
        bool Init
        {
            get;
        }

        ////数据库连接
        //IDataAccess Data
        //{
        //    get;
        //    set;
        //}

        //病人类型 0 打折病人 1 医保病人 -1 还未确定
        int PatientType
        {
            get;
        }
        //Sysconfig  sysconfig;

        //下载数据
        int DownLoadDataFromMedicare(ArrayList PrenoList);

        //对照数据
        int UploadCorrectData(DataSet medicareInfo,int tranType);


        

    }
}
